package cn.tedu.collection;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;

/*b本类用于测试set*/
public class TestSet {
    public static void main(String[] args) {
        //1,创建对应的集合对象
        HashSet<Object> set = new HashSet<>();
       //2,存入数据
        set.add("紫霞仙子");
        set.add("至尊宝");
        set.add("蜘蛛精");
        set.add("紫霞仙子");
        set.add(null);

        /* 1,set集合中的元素都是没有顺序的
         * 2,set集合中的元素不能重复
         * 3,set集合可以存null值,但是最多只有一个*/
        System.out.println(set);
        //3,常用方法
        System.out.println(set.contains("唐僧"));//false,判断是否包含指定元素
        System.out.println(set.isEmpty());//false,判断集合是否为空
        System.out.println(set.remove(null));//true,移除集合中的元素null
        System.out.println(set);
        System.out.println(set.size());
        System.out.println(Arrays.toString(set.toArray()));
        
        //4,测试集合间的操作
        HashSet<Object> set2 = new HashSet<>();
        set2.add("小兔子");
        set2.add("小老虎");
        set2.add("小海豚");
        set2.add("小狮子");
        System.out.println(set2);
        System.out.println("-----------------------");

        set2.addAll(set);
        System.out.println(set);
        System.out.println(set2);
        //判断集合1中是否包含集合2的所有元素
        System.out.println(set.containsAll(set2));//false
        //移除集合2中属于集合1的所有元素
        System.out.println(set2.removeAll(set));
        System.out.println(set2);
        //取set2集合中属于set集合的公共元素
        System.out.println(set2.retainAll(set));
        System.out.println(set2);

        //5,集合的迭代
        //获取迭代器
        Iterator<Object> it = set.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }

}
